The present invention relates to a network with distributed service control point functionality, and in particular although not exclusively to such a server for use within an IN (xe2x80x9cIntelligent Networkxe2x80x9d) environment. Intelligent Network architecture and standards are in use by many telecommunications throughout the world. Typically, each Intelligent Network includes a plurality of Service Control Points (SCPs) which executes the IN services. SCPs are typically centralised computing platforms which interface both to Intelligent Peripherals, and also to the underlying core network. Problems may arise, however, with both accuracy and scalability where service features are required to be shared by multiple SCPs, of the same manufacturer or otherwise. The problem may be particularly acute where individual SCPs are of differing kinds and/or are made by different manufacturers.
According to the present invention there is provided a telecommunications network for the automated switching of calls according to predefined user preferences, the network including a plurality of computer platforms, at spaced locations, each platform including:
(a) call receiving means for receiving incoming calls;
(b) switch control means for controlling the switching of incoming calls; and
(c) a global data server, in communication with the switch control means, for maintaining real-time call destination status information;
the switch control means of each platform also being in communication with the global data server of at least one other platform; and
the switch control means being arranged to control switching of an incoming call for a given user according to the user preferences for the given user and according to information on real-time call destination statuses received from a given one of the global data servers on which information for the given user is maintained.
By maintaining real-time call destination status information for a given user on exactly one of the global data servers, the load across the entire telecommunications network may be spread fairly evenly across the plurality of computer platforms. The global data servers implement a distributed service control point functionality making it possible for resources required globally to be shared by many services and Intelligent Network (IN) platforms in real time.
The information maintained on the global data servers is updated in real time, preferably by means of a message sent by the switch control means whenever a connection is made and whenever a connection is broken. Such an arrangement avoids the use of large conventional database systems which, because of the overhead involved, typically cannot be updated in real time. It is to be understood, of course, that in this specification and the claims the expression xe2x80x9creal timexe2x80x9d does not necessarily preclude a delay between the connection being made and the information on the global data server being updated. Some sort of delay is naturally inevitable, merely from the physical constraints of the system, and in some cases update requests may even have to be buffered for a short period. Nevertheless, a clear distinction has to be made between the xe2x80x9creal timexe2x80x9d system of the present invention, in which the information is updated, as rapidly as may be, on a call-by-call basis, and a conventional database system in which updates are typically carried out on a bulk basis, perhaps once a day.
The call destination status information which is maintained by the global data servers may include (but is not restricted to) call-in-progress count information for each of the potential call destinations (one particular type of which may be an Answer Centre) for a given user. In the preferred embodiment, the switch control means may check with the global data server appropriate for that user whether it can be permitted to transfer an incoming call to its preferred Answer Centre. The global data server checks whether the calls-in-progress count is lower than the maximum permitted for that particular Answer Centre, and if so returns a signal to the switch control means permitting the connection to be made. If on the other hand the calls-in-progress count for that Answer Centre has already reached the maximum permitted, the global data server may return a signal indicating to the switch control means that the proposed connection is not permitted, or alternatively may indicate that the connection is queued. The switch control means may then refer to the predefined user preferences, to see whether the call should be connected to another Answer Centre. If so, it makes a similar request to the global data server in connection with that Answer Centre. Eventually, the incoming call is either connected with an available Answer Centre, or the global data server has denied access to all possible Answer Centres, in which case the switch control means refers to the user preferences to decide what action to take next: typically, to transfer the incoming call either to a recorded voice announcement, to supply the caller with the xe2x80x9cbusy tonexe2x80x9d, or to use an alternative service logic to formulate the call.
Each switch control means has access to the predefined user preferences, which may preferably be stored as a computer file, or in memory. Preferably, multiple copies of the user preferences for each of the users are stored on a corresponding plurality of user-preference servers, one on each of the computer platforms. In the preferred embodiment, the user preference servers may comprise data servers. By disseminating copies of the user preferences to each of the platforms, the switch control means may obtain the information they need rapidly, without needing to overload a central database. Each of the user preference servers desirably receives information from a central user front end server, on a regular basis, specifying whether any changes have been made to the master copy of the user preferences. In one preferred arrangement, each user preference server is automatically updated as and when a change occurs. When the invention is used on a BT network, the preferred embodiment of the user preference server is BT""s Major Customer Service System.
Each switch control means may maintain in memory a list of all known users of the system, along with the address of or a mapping to the global data server on which the call destination status information for that user may be found. In that way, requests for call destination status information for a given user may rapidly be addressed to the correct global data server, whether that server happens to be on the same or on a different platform from the requesting switch control means.
The information is preferably maintained on the global data servers in an object-oriented format, and each of the servers is arranged to auto-create a new object if a switch control means communicates to it details of an object which it does not previously know about. For example, if a request is made of a global data server which refers to a presently unknown user, a record for that user is automatically created. Similarly, a record for a call destination is automatically created if the global data server receives a request which refers to a currently unknown call destination.
Desirably, the global data servers do not need to know, neither do they care, where a particular request for information has come from. They are arranged to respond to any request, from anywhere, which has been made in the correct format. Such an arrangement provides location transparency, and enables the system to share services very effectively. Indeed, the global data servers need not be restricted to responding to requests from a single service provider: they could be shared between service providers, or at least made accessible to a number of different service providers. This would have the advantage that a single Answer Centre could, if required by the user, receive calls via a number of different service providers. To put it another way, the global data server does not know, or care, which customers, Answer Centres or Proportional Call Distribution Tables it has to work with, nor which Advanced Transaction Server a message has come from.
The user may wish automatically to spread the incoming calls between a variety of different Answer Centres, with the number of calls going to each Answer Centre possibly varying with time. This may be achieved by allowing the user to specify user-defined weightings within the user preferences, the switch control means then being arranged to distribute the incoming calls between the selected call destinations according to those weightings.
When a request is made of a global data server, the server may return, along with other information, control rate information indicating the rate at which the server is currently receiving requests. That control rate information may then be used by the switch control means, which may vary its mode of operation in dependence upon the control rate information. For example, the user preferences may specify that if the global data server is becoming overloaded, future incoming calls should be directed elsewhere, for example to an Intelligent Peripheral which may provide an automated answering service. In one preferred embodiment, when the global data server is overloaded, calls to it are sent to an xe2x80x9cAll Busyxe2x80x9d branch on the user""s call plan.